package br.com.fox.iebav.session;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;

import javax.annotation.PostConstruct;
import javax.ejb.EJB;
import javax.enterprise.context.SessionScoped;
import javax.faces.application.FacesMessage;
import javax.faces.model.SelectItem;
import javax.inject.Named;

import br.com.fox.iebav.controller.command.LogarAreaRestrita;
import br.com.fox.iebav.controller.command.SalvarRamoAtividade;
import br.com.fox.iebav.controller.command.SalvarTipoLogradouro;
import br.com.fox.iebav.controller.command.SalvarUsuario;
import br.com.fox.iebav.dao.NiveisDAO;
import br.com.fox.iebav.dao.StatusUsuariosDAO;
import br.com.fox.iebav.entity.Niveis;
import br.com.fox.iebav.entity.Ramosatividade;
import br.com.fox.iebav.entity.Statususuario;
import br.com.fox.iebav.entity.Tiposlogradouro;
import br.com.fox.iebav.entity.Usuarios;
import br.com.fox.iebav.session.abstractsession.AbstractSession;

@Named("tipoLogradouroBeanSession")
@SessionScoped
public class TipoLogradouroBeanSession extends AbstractSession implements Serializable {
	
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	
//	ATRIBUTOS
	private List<Tiposlogradouro> tiposLogradouroList;
	private Tiposlogradouro tipoLogradouroSelecionado;
	
//	CONTROLLER COMMAND
	private @EJB SalvarTipoLogradouro salvarTipoLogradouro;
	private Map<String, Object> resultMap;
	
	
	@PostConstruct
	public void init()
	{
		setTipoLogradouroSelecionado(new Tiposlogradouro());
		carregarTiposLogradouro();
		redirecionarURL("tiposLogradouro.java");
	}		
	
	public void carregarTiposLogradouro()
	{
		setTiposLogradouroList( salvarTipoLogradouro.getTiposlogradourodao().findAll() );
	}
	
	public void abrirTipoLogradouroSelecionado()
	{
		redirecionarURL("tipoLogradouroPersistencia.java");
	}
	
	public void novoTipoLogradouro()
	{
		setTipoLogradouroSelecionado(new Tiposlogradouro());
		redirecionarURL("tipoLogradouroPersistencia.java");
	}
	
	public void salvarTipoLogradouro()
	{
		resultMap = salvarTipoLogradouro.execute(getTipoLogradouroSelecionado());
		if( ( (Boolean) resultMap.get("resultado") ) )
			facesMensagens(FacesMessage.SEVERITY_INFO,((String)resultMap.get("mensagem")),"");
		else
			facesMensagens(FacesMessage.SEVERITY_ERROR,((String)resultMap.get("mensagem")),"");
		carregarTiposLogradouro();
	}

	public List<Tiposlogradouro> getTiposLogradouroList() {
		return tiposLogradouroList;
	}

	public void setTiposLogradouroList(List<Tiposlogradouro> tiposLogradouroList) {
		this.tiposLogradouroList = tiposLogradouroList;
	}

	public Tiposlogradouro getTipoLogradouroSelecionado() {
		return tipoLogradouroSelecionado;
	}

	public void setTipoLogradouroSelecionado(
			Tiposlogradouro tipoLogradouroSelecionado) {
		this.tipoLogradouroSelecionado = tipoLogradouroSelecionado;
	}

}
